package edu.asu.cse360.dao;

import edu.asu.cse360.util.Pagination;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface DataAccessObject<T, PK extends Serializable> {
    void create(T newInstance);
    T read(PK id);
    void update(T transientObject);
    void delete(T persistentObject);

    List<T> findList(String findQuery);

    T findSingleResult(String findQuery);

    List<T> findList(String findQuery, Map<String, Object> params);

    T findSingleResult(String findQuery, Map<String, Object> params);
}
